home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Power 1997 December
/
MACPOWER-1997-12.ISO.7z
/
MACPOWER-1997-12.ISO
/
AMUG
/
PROGRAMMING
/
Raven 1.2.sit
/
Raven 1.2
/
Source
/
Foundation
/
OS
/
ZEvent.h
< prev
next >
Wrap
Text File
|
1997-06-17
|
4KB
|
153 lines
/*
* File: ZEvent.h
* Summary: Classes that encapsulate an EventRecord.
* Written by: Jesse Jones
*
* Copyright ゥ 1996 Jesse Jones.
* For conditions of distribution and use, see copyright notice in ZTypes.h
*
* Change History (most recent first):
*
* <-> 8/01/96 JDJ Created
*/
#pragma once
#include <Events.h>
#include <ZGeometry.h>
#include <ZTypes.h>
// ===================================================================================
// class TEvent
// ===================================================================================
class TEvent {
//-----------------------------------
// Initialization/Destruction
//
public:
virtual ~TEvent();
TEvent();
TEvent(const EventRecord& event);
//-----------------------------------
// API
//
public:
EventRecord GetEventRecord() const {return mEventRecord;}
MilliSecond GetTimeStamp() const {return mTimeStamp;}
// Returns the time at which the event occured.
TPoint GetGlobalPosition() const {return mGlobalPos;}
TPoint GetPosition() const {return mEventRecord.where;}
void SetPosition(const TPoint& pos) {mEventRecord.where = pos;}
ushort GetModifiers() const {return mEventRecord.modifiers;}
void SetModifiers(ushort modifiers) {mEventRecord.modifiers = modifiers;}
bool WasCommandKeyDown() const {return (mEventRecord.modifiers & cmdKey) != 0;}
bool WasShiftKeyDown() const {return (mEventRecord.modifiers & shiftKey) != 0;}
bool WasCapsLockDown() const {return (mEventRecord.modifiers & alphaLock) != 0;}
bool WasOptionKeyDown() const {return (mEventRecord.modifiers & optionKey) != 0;}
bool WasControlKeyDown() const {return (mEventRecord.modifiers & controlKey) != 0;}
//-----------------------------------
// Member data
//
protected:
EventRecord mEventRecord;
TPoint mGlobalPos;
MilliSecond mTimeStamp;
};
// ========================================================================================
// class TMouseEvent
// Encapsulates a mouse down, mouse up, or mouse move event.
// ========================================================================================
class TMouseEvent : public TEvent {
//-----------------------------------
// Initialization/Destruction
//
public:
virtual ~TMouseEvent();
TMouseEvent();
TMouseEvent(const EventRecord& event, long clickCount = 1);
// Event.where should be in global coordinates.
//-----------------------------------
// New API
//
public:
long GetClickCount() const {return mClickCount;}
void SetClickCount(long count) {ASSERT(count >= 1); mClickCount = count;}
bool WasMouseDown() const {return mEventRecord.what == mouseDown;}
bool WasMouseUp() const {return mEventRecord.what == mouseUp;}
bool WasMouseMoved() const {return mEventRecord.what == osEvt;}
//-----------------------------------
// Data members
//
protected:
long mClickCount;
};
// ========================================================================================
// class TKeyEvent
// Encapsulates a key down, key up, or auto key event.
// ========================================================================================
class TKeyEvent : public TEvent {
//-----------------------------------
// Initialization/Destruction
//
public:
virtual ~TKeyEvent();
TKeyEvent();
TKeyEvent(const EventRecord& event);
//-----------------------------------
// New API
//
public:
char GetChar() const {return (char) (mEventRecord.message & charCodeMask);}
int GetKey() const {return (int) ((mEventRecord.message & keyCodeMask) >> 8);}
bool WasKeyDown() const {return mEventRecord.what == keyDown || mEventRecord.what == autoKey;}
bool WasKeyUp() const {return mEventRecord.what == keyUp;}
bool WasRepeating() const {return mEventRecord.what == autoKey;}
static MilliSecond GetRepeatFreq();
};